// pages/my/my.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    // 页面初次渲染完成时执行的逻辑
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    // 页面隐藏时执行的逻辑
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 页面卸载时执行的逻辑
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 用户下拉时执行的逻辑
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 用户上拉触底时执行的逻辑
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    // 用户点击右上角分享时执行的逻辑
  },

  // 检查登录状态
  checkLoginStatus() {
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({ userInfo });
    }
  },

  // 检查是否已登录，未登录则提示
  checkLogin() {
    if (!this.data.userInfo) {
      this.showLoginModal();
      return false;
    }
    return true;
  },

  // 显示登录提示弹窗
  showLoginModal() {
    wx.showModal({
      title: '提示',
      content: '该功能需要登录后才能使用，是否立即登录？',
      confirmText: '去登录',
      cancelText: '暂不登录',
      success: (res) => {
        if (res.confirm) {
          this.handleLogin();
        }
      }
    });
  },

  // 处理登录
  handleLogin() {
    wx.getUserProfile({
      desc: '用于完善会员资料',
      success: (res) => {
        const userInfo = res.userInfo;
        wx.setStorageSync('userInfo', userInfo);
        this.setData({ userInfo });
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        });
      },
      fail: () => {
        wx.showToast({
          title: '登录失败',
          icon: 'error'
        });
      }
    });
  },

  // 退出登录
  onLogout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          wx.removeStorageSync('userInfo');
          this.setData({ userInfo: null });
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
        }
      }
    });
  },

  // 常见问题
  onCommonQuestions() {
    if (!this.checkLogin()) return;
    wx.navigateTo({ url: '/pages/faq/faq' });
  },

  // 在线客服
  onCustomerService() {
    if (!this.checkLogin()) return;
    
    // 判断是否在开发者工具中
    if (wx.getSystemInfoSync().platform === 'devtools') {
      wx.showModal({
        title: '提示',
        content: '请在真机中使用客服功能,您可以向客服反馈任何问题或建议',
        showCancel: false
      });
      return;
    }

    // 打开企业微信客服
    wx.openCustomerServiceChat({
      extInfo: {url: 'https://work.weixin.qq.com/kfid/kfc6e12345678901234'},
      corpId: 'ww6e12345678901234',
      success(res) {
        console.log('打开客服会话成功');
      },
      fail(err) {
        console.error('打开客服会话失败', err);
        // 如果企业微信客服打开失败,回退到小程序原生客服
        wx.showModal({
          title: '提示',
          content: '正在为您转接人工客服...',
          showCancel: false,
          success() {
            wx.openCustomerServiceChat({
              success() {
                console.log('打开原生客服成功');
              },
              fail() {
                wx.showToast({
                  title: '客服暂时无法接入,请稍后再试',
                  icon: 'none',
                  duration: 2000
                });
              }
            });
          }
        });
      }
    });
  },

  // 跳转到使用记录
  goToHistory() {
    if (!this.data.userInfo) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    // TODO: 跳转到使用记录页面
  },

  // 跳转到关于我们
  goToAbout() {
    // TODO: 跳转到关于我们页面
  },

  // 查看反馈记录
  onFeedbackList() {
    if (!this.checkLogin()) return;
    wx.navigateTo({ url: '/pages/feedback-list/feedback-list' });
  }
})